import java.io.*;
//Used to solve the problem that a normal ObjectInputStream will complain about our shared classes being different
//Other than that, it behaves exactly the same as an ObjectInputStream.
class HackedObjectInputStream extends ObjectInputStream {
	
    public HackedObjectInputStream(InputStream inputStream) throws IOException {
    	super(inputStream);
    }

    @Override
    protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException {
        ObjectStreamClass resultClassDescriptor = super.readClassDescriptor();

        if (resultClassDescriptor.getName().equals("sharedClasses.Match"))
            resultClassDescriptor = ObjectStreamClass.lookup(sharedClasses.Match.class);

        return resultClassDescriptor;
    }
    
}